package cn.fws.meap.community.mapper;

import cn.fws.meap.community.entity.Answer;
import cn.fws.meap.community.vo.AnswerListVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 回答 数据层
 * 
 * @author chenkh
 * @date 2019-03-07
 */
@Mapper
public interface AnswerMapper {
	/**
     * 查询回答信息
     * 
     * @param id 回答ID
     * @return 回答信息
     */
	public Answer selectById(String id);
	
	/**
     * 查询回答列表
     * 
     * @param answer 回答信息
     * @return 回答集合
     */
	public List<Answer> selectList(Answer answer);
	
	/**
     * 新增回答
     * 
     * @param answer 回答信息
     * @return 结果
     */
	public int insert(Answer answer);
	
	/**
     * 修改回答
     * 
     * @param answer 回答信息
     * @return 结果
     */
	public int update(Answer answer);
	
	/**
     * 删除回答
     * 
     * @param id 回答ID
     * @return 结果
     */
	public int deleteById(String id);
	
	/**
     * 批量删除回答
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deleteByIds(String[] ids);

	/**
	 * 根据ID获取文本资源ID
	 * @param id
	 * @return
	 */
	String getMsgIdById(String id);

	/**
	 * 根据ID获取文章封面资源ID
	 * @param id
	 * @return
	 */
	String getTitleImgIdById(String id);


	/**
	 * 根据问题ID获取回答数量
	 * @param problemId
	 * @return
	 */
	public int getCountByProblemId(String problemId);

    /**
     * 根据问题ID获取所有的回答
     * @param problemId
     * @return
     */
	public List<Answer> getAnswerByProblemId (String problemId);

    /**
     * 根据回答ID设置采纳状态
     * @param answerId
     * @return
     */
	public int adopt(String answerId);

    /**
     * 根据回答ID获取问题ID
     * @param answerId
     * @return
     */
	public String getProblemIdById(String answerId);

	/**
	 * 根据问题ID获取问答内容
	 * @param answerId
	 * @return
	 */
    List<AnswerListVo> selectAnswerList(String answerId);

	/**
	 * 二级问答
	 * @param list
	 * @return
	 */
	List<AnswerListVo> selectTwoAnswerList(List<String> list);

	/**
	 * 修改回答采纳状态
	 * @param answerId
	 * @param adopt
	 * @return
	 */
    int updateAdopt(@Param("answerId") String answerId,@Param("adopt") String adopt);

	/**
	 * 查询是否被采纳过
	 * @param problemId
	 * @param adopt
	 * @return
	 */
    Boolean selectByAdopt( @Param("problemId")String problemId,@Param("adopt") String adopt);
}